// 数据类型和变量
function test1() {
    var age = 15;
    if (age >= 18) {
        alert("111")
    } else {
        alert("222")
    }

}

// NaN
// NaN这个特殊的Number与所有其他值都不相等，包括它自己
function test2() {
    NaN === NaN; // false
    alert(isNaN(NaN));
}

// 数组
function test3() {
    // 创建数组的一种方式
    var arry = [1, 2, 3.14, 'Hello', null, true];
    alert(arry[0]);
    // arry[0]; // 返回索引为0的元素，即1
    // arry[5]; // 返回索引为5的元素，即true
    // arry[6]; // 索引超出了范围，返回undefined
}

// 对象
function test4() {
    var person = {
        name: 'Bob',
        age: 20,
        tags: ['js', 'web', 'mobile'],
        city: 'Beijing',
        hasCar: true,
        zipcode: null
    };
    // 取对象的值
    alert(person.name);

}

// var作用域问题
//var i 作用域是 block1，而执行完循环后，i=3, 此时才执行函数回调，所以打印的是undefined。
function testVar() {
    var messages = ['1', '2', '3'];
    for (var i = 0; i < messages.length; i++) {
        setTimeout(function () {
            // 当执行到这儿的时候，其实i的值已经是3了
            console.log(messages[i]);
        }, i * 1500);
    }
    //block1
}

function testVar2() {
    var messages = ['1', '2', '3'];
    for (var i = 0; i < messages.length; i++) {
        console.log(messages[i]);
    }
}